﻿using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace BatallaNavalgo.Tests
{
    [TestClass]
    public class TestCasilla
    {
        private int[] posicion;
        private DisparoConvencional disparo;
        private Casilla casilla;

        public TestCasilla()
        {
            this.posicion = new int[2];
            this.posicion[0] = 0;
            this.posicion[1] = 1;
            this.disparo = new DisparoConvencional(0);
            this.casilla = new Casilla(posicion);
        }

        [TestMethod]
        public void TestConstuctor()
        {
            Assert.AreEqual(this.posicion, this.casilla.Posicion);
            Assert.IsFalse(this.casilla.TieneDisparo());
        }

        [TestMethod]
        public void TestSetearDisparo()
        {
            this.casilla.AlmacenarDisparo(this.disparo);
            Assert.IsTrue(this.casilla.Disparos.Contains(this.disparo));
            Assert.IsTrue(this.casilla.TieneDisparo());
        }

        [TestMethod]
        public void TestCasillaDebePasarDeTurnoAlDisparoQueTieneAlmacenado()
        {
            MinaPuntual mina = new MinaPuntual(2);
            this.casilla.AlmacenarDisparo(mina);
            foreach (Disparo disparo in this.casilla.Disparos)
            {
                Assert.AreEqual(2, disparo.Turno);
                casilla.PasarTurno();
                Assert.AreEqual(1, disparo.Turno);
            }
        }
    }
}
